import requests
from basic.base_request import baseFrontRequest, baseAdminRequest


class URL:
    add_Product ='/api/admin/merchant/product/save'
    add_Coupons = '/api/admin/merchant/coupon/save'
    add_Category = '/api/admin/merchant/store/product/category/add'
    select_Category = '/api/admin/merchant/store/product/category/list'
    select_Coupons = '/api/admin/merchant/coupon/list'
    select_Product = '/api/admin/merchant/product/list'
class AdminProduct(URL,baseAdminRequest):
    def select_product(self):
        params = {
            'page': '1',
            'limit': '20',
            'cateId': '',
            'keywords': '',
            'type': '1',
            'temp': '1755425811',
        }
        return self.get(self.select_product.__name__,self.select_Product,params)
    def select_coupons(self):
        params = {
            'page': '1',
            'limit': '20',
            'status': '',
            'name': '',
            'type': '',
            'useType': '',
            'temp': '1755419965',
        }
        return self.get(self.select_coupons.__name__, self.select_Coupons, params)
    def select_category(self):
        params = {
            'temp': '1755419965',
        }
        return self.get(self.select_category.__name__,self.select_Category,params)
    def add_category(self,name=None):
        params = {
            'icon': None,
            'name': name,
            'pid': 0,
            'sort': 1,
            'id': 0,
        }
        return self.post(self.add_category.__name__,self.add_Category,params)
    def add_coupons(self,
                    # 商品/条目名称（如商品标题、分类名称等）
                    # 示例："智能手机分类"、"2024夏季新款T恤"
                    name=None,
                    # 商品/条目的简介或描述信息
                    # 用于补充充分类或商品的详细说明，支持文本描述
                    intro=None,
                    # 所属主分类ID（通常关联到某个父级分类）
                    # 用于指定当前条目从属的主要分类，关联分类体系中的层级关系
                    cateId=None,
                    # 单位名称（如商品的计量单位）
                    # 示例："个"、"件"、"套"，用于标识商品的计量方式
                    unitName=None,
                    # 排序权重（数值越小越靠前）
                    # 用于控制列表中的展示顺序，适用于分类、商品等需要排序的场景
                    sort=None,
                    # 是否显示（布尔值，True/False）
                    # 控制该条目是否在前端展示，False通常表示隐藏状态
                    isShow=None,
                    # 关键字（用于搜索或标识）
                    # 可设置核心关键词，辅助搜索过滤或作为特殊标识
                    keyword=None,
                    # 所属分类ID列表（支持多分类关联）
                    # 当条目需要归属多个分类时使用，如一个商品同时属于"电子产品"和"促销商品"
                    cateIds=None,
                    # 关联的优惠券ID列表
                    # 用于绑定可使用的优惠券，如该分类下的商品可使用哪些优惠券
                    coupons=None
    ):
        params = {
            # 基础信息参数（从方法参数传入）
            'name': name,
            'intro': intro,
            'keyword': keyword,
            'cateIds': cateIds,
            'cateId': cateId,
            'unitName': unitName,
            'sort': sort,
            'isShow': isShow,
            'coupons': [coupons],

            # 优惠券固定配置或默认值
            'category': 1,  # 固定分类（如通用优惠券）
            'isFixedTime': False,  # 默认不使用固定时间
            'money': 1,  # 可根据需求改为参数传入
            'minPrice': 0,  # 可根据需求改为参数传入
            'day': 1,  # 可根据需求改为参数传入
            'isTimeReceive': False,  # 默认不限时领取
            'productIds': '',  # 默认为空（通用所有商品）
            'receiveType': 2,  # 固定领取类型（如手动领取）
            'isLimited': False,  # 默认不限量
            'useStartTime': '',  # 空表示不设置
            'useEndTime': '',  # 空表示不设置
            'receiveStartTime': '',  # 空表示不设置
            'receiveEndTime': '',  # 空表示不设置
            'total': 0,  # 可根据需求改为参数传入
            'status': True,  # 默认未启用
            'checked': [],  # 默认无选中项
        }
        url = URL.add_Coupons
        return self.post(self.add_coupons.__name__, url, params)
    def add_products(self,
                     # 名称（如商品名称、分类名称等核心标识）
                     # 示例："夏季连衣裙"、"数码配件分类"
                     name=None,

                     # 简介/描述信息（用于补充说明该条目）
                     # 通常为一段文本，介绍商品特点、分类包含内容等
                     intro=None,

                     # 主分类ID（关联的父级分类唯一标识）
                     # 用于指定当前条目从属的主要分类，构建分类层级关系
                     # 示例：若当前为"连衣裙"，主分类ID可能指向"女装"分类
                     cateId=None,

                     # 单位名称（计量该类商品的单位）
                     # 常见于实体商品，如"个"、"件"、"kg"等
                     unitName=None,

                     # 排序权重（控制展示顺序的数值）
                     # 数值越小越靠前，用于调整列表中的显示优先级
                     sort=None,

                     # 是否显示（控制前端是否展示该条目）
                     # True表示可见，False表示隐藏（通常用于暂不展示的内容）
                     isShow=None,

                     # 关键字（用于搜索过滤或标识的核心词）
                     # 可设置多个关键词用逗号分隔，辅助快速检索
                     keyword=None,

                     # 多分类ID列表（该条目所属的多个分类ID）
                     # 支持一个条目归属多个分类，如某商品同时属于"促销"和"新品"分类
                     cateIds=None,

                     # 关联优惠券ID列表（可用于该条目的优惠券集合）
                     # 存储优惠券的唯一标识，表示该商品/分类可使用这些优惠券
                     coupons=None,
                     coupons_id = None
                     ):
        params = {
            'image': 'https://crmebjavamer.oss-cn-beijing.aliyuncs.com/crmebimage/public/content/2025/07/29/c9224f539b214f55a71f915e51042f88xrpja52uvp.png',
            'sliderImages': [
                'https://crmebjavamer.oss-cn-beijing.aliyuncs.com/crmebimage/public/content/2025/07/29/0c097bfc61224732bb03d434821948b40m3fnhz03h.png',
                'https://crmebjavamer.oss-cn-beijing.aliyuncs.com/crmebimage/public/content/2025/07/29/c9224f539b214f55a71f915e51042f88xrpja52uvp.png',
            ],
            'sliderImage': '["https://crmebjavamer.oss-cn-beijing.aliyuncs.com/crmebimage/public/content/2025/07/29/0c097bfc61224732bb03d434821948b40m3fnhz03h.png","https://crmebjavamer.oss-cn-beijing.aliyuncs.com/crmebimage/public/content/2025/07/29/c9224f539b214f55a71f915e51042f88xrpja52uvp.png"]',
            'name': name,
            'intro': intro,
            'keyword': keyword,
            'cateIds': [cateIds],
            'cateId': cateId,
            'unitName': unitName,
            'sort': sort,
            'isShow': isShow,
            'tempId': 542,
            'header': [],
            'attrValueList': [
                {
                    'image': 'https://crmebjavamer.oss-cn-beijing.aliyuncs.com/crmebimage/public/content/2025/07/29/c9224f539b214f55a71f915e51042f88xrpja52uvp.png',
                    'brokerage': 0,
                    'brokerageTwo': 0,
                    'price': 0.01,
                    'vipPrice': 0.01,
                    'cost': 0.01,
                    'otPrice': 0.01,
                    'stock': 0,
                    'barCode': '',
                    'itemNumber': '',
                    'weight': 0,
                    'volume': 0,
                    'cdkeyId': None,
                    'cdkeyLibraryName': '',
                    'expand': '',
                    'isShow': True,
                    'attrValue': '{"规格":"默认"}',
                },
            ],
            'attrList': [
                {
                    'attributeName': '规格',
                    'attrValues': '默认',
                    'isShowImage': False,
                    'optionList': [
                        {
                            'optionName': '默认',
                            'id': 0,
                            'image': '',
                            'sort': 1,
                        },
                    ],
                },
            ],
            'attrs': [],
            'selectRule': '',
            'isSub': False,
            'isPaidMember': False,
            'content': '',
            'specType': False,
            'couponIds': [coupons_id],
            'coupons': [coupons],
            'categoryId': 142,
            'guaranteeIds': '9',
            'guaranteeIdsList': [
                9,
            ],
            'brandId': 0,
            'type': 0,
            'isAutoSubmitAudit': False,
            'isAutoUp': True,
            'deliveryMethodList': [
                '1',
            ],
            'deliveryMethod': '1',
            'systemFormId': 0,
            'refundSwitch': True,
        }
        url = URL.add_Product
        return self.post(self.add_products.__name__,url,params)

